﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Datos;
using Entidades;

namespace Logica
{
    public class ControlBLL
    {
        public string agregarControl(ControlSolicitud con) {
            string msg;
            IControlSolicitud control = DAOFactory.getDAOFactory("mysql").getControlDAO();
            try
            {
                control.Conectar();
                control.insertar(con);
                msg = "Taxi Solicitado";
            }
            catch (Exception ex)
            {
                msg = ex.Message;
            }
            finally
            {
                control.Desconectar();
            }

            return msg;  
       
        }

        public ControlSolicitud GetSolicitud(string email) {

            ControlSolicitud con = new ControlSolicitud();
            IControlSolicitud dbcontrol = DAOFactory.getDAOFactory("mysql").getControlDAO();
            ITaxi dbtaxi = DAOFactory.getDAOFactory("mysql").getTaxiDAO();
            IUsuario dbpasajero = DAOFactory.getDAOFactory("mysql").getPasajerosDAO();

            dbtaxi.Conectar();
            con.taxi = dbtaxi.getTaxi(email);// obtengo la placa del taxi
            dbtaxi.Desconectar();

            dbcontrol.Conectar();
            con = dbcontrol.getSolicitud(con);// obtengo la solicitud al taxi  
            dbcontrol.Desconectar();

            if (con.pasajero.Email!= null){
            dbpasajero.Conectar();
            con.pasajero = dbpasajero.getUsuario(con.pasajero.Email); //obtengo el pasajero que pidio el taxi
            dbpasajero.Desconectar();
            }

            return con;
        }

        public string BorrarSolicitud(ControlSolicitud con) {
            IControlSolicitud dbcontrol = DAOFactory.getDAOFactory("mysql").getControlDAO();
            dbcontrol.Conectar();
            dbcontrol.BorrarSolicitud(con);
            dbcontrol.Desconectar();
            return "Borrado con exito";
        }

        public string Actualizar(ControlSolicitud con) {
            IControlSolicitud dbcontrol = DAOFactory.getDAOFactory("mysql").getControlDAO();
            dbcontrol.Conectar();
            dbcontrol.Actualizar(con);
            dbcontrol.Desconectar();
            return "Actualizado";
        }
    }
}
